1. Technical Field
The present invention relates in general to a system and method for controlling local database usage. More particularly, the present invention relates to a system and method for controlling access to a local database replicated from a database server.
2. Description of the Related Art
Data integrity is an important aspect of database management. Enterprises retain large quantities of data in databases. Databases are maintained by database management systems (DBMSs), such as IBM's Lotus Notes™ database, which are specially designed to manage data. Management of data includes the ability to store, replicate, retrieve, and analyze data. Data is stored in databases so that it can be reliably retrieved at a later time and used in reports or other enterprise processes. Without solid data integrity, however, the ability to reliably retrieve data is compromised.
System failures can occur in hardware, communications, database software and application software. Data can be stored improperly, deleted, or become corrupted (i.e., can no longer be read). Errors can result from simple, expected malfunctions that happen even in today's advanced computers to poor database design, wrong choice of development software, or quickly built software. Depending upon security setups, data can be stolen, deleted, or mangled by malicious users or hackers.
When a piece of data in a database is damaged, the user may find out about it immediately because the system will either inform the user or crash. These types of problems can be repaired by reloading the database from a previous backup and re-entering your data.
More insidious, however, is the damage that goes undetected for a period of time. For example, an accounting record that has an amount changed. The software using the database may continue to execute without warning. Because of their nature, these types of errors are typically more difficult to identify and repair.
One way records can be damaged is when a user with access to the database copies the database onto a local computer system. Once on the local computer system, the user can often modify security settings stored in the database Access Control List (ACL) and modify database records. If the modified database stored on the user's local computer system is used in a production environment (i.e., either used from the user's local system or the database is copied back to the database server), replication conflicts and other data integrity problems can occur.
While it may be possible to completely block users from modifying a database stored on the user's computer system, there are some database users and administrators that may have legitimate needs to modify the database outside the database server. For example, if a database administrator is adding new fields, tables, or views to a database, the administrator may wish to test the effect of such changes in a non-production environment.
What is needed, therefore, is a system and method in which unauthorized users are prevented from using a database stored on their local computer systems while still allowing authorized users to make modifications to the database when stored on the authorized users' local computer system.